'''
数据的提取
'''
# 定义抽象类完成顶层设计，确定有哪些功能实现
import json
from date_define import Record
# 定义抽象类，确定要实现的功能
class fillread:
    def read_date(self) -> list[Record]:
        '''读取文件数据读取到的每一条数据都转换为Record对象'''
        pass
class TextFillRead:
    # 定义一个成员变量，存储文件路径
    def __init__(self,path):
        self.path = path
    # 复写父类方法
    def read_date(self):
        reord_list = []
        f=open(self.path,'r',encoding='UTF-8')
        for i in f.readlines():
            i = i.strip()
            date_liust = i.split(',')
            record = Record(date_liust[0],date_liust[1],int(date_liust[2]),date_liust[3])
            reord_list.append(record)
        f.close()
        return reord_list
class JsonFillRead:
    # 定义一个成员变量，存储文件路径
    def __init__(self,path):
        self.path = path
    # 复写父类方法
    def read_date(self):
        reord_list = []
        f=open(self.path,'r',encoding='UTF-8')
        for i in f.readlines():
            date_dict=json.loads(i)
            reord=Record(date_dict['date'],date_dict['order_id'],int(date_dict['money']),date_dict['province'])
            reord_list.append(reord)
        f.close()
        return reord_list
text_file_reade=TextFillRead('C:/Users/21003/Desktop/python练习/数据分析案例/2023-1月销售信息.txt')
json_file_reade=JsonFillRead('C:/Users/21003/Desktop/python练习/数据分析案例/2023-2月销售信息JSON.txt')
list1=text_file_reade.read_date()
list2=json_file_reade.read_date()
print(list2)
print(list1)